home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 4 / Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso / Development / Source / DBL Pascal Library / ErrSignal / TestSignals_5.p < prev    next >
Text File  |  1991-09-18  |  1KB  |  63 lines

  1. program main;
  2.  
  3.     uses
  4.         ErrSignal;
  5.  
  6.     var
  7.         mainCatch: Integer;
  8.  
  9.     procedure TestProc;
  10.         var
  11.             catch: Integer;
  12.  
  13.         procedure SubProc;
  14.             var
  15.                 dummy: Integer;
  16.         begin
  17.             dummy := 1;
  18.             writeln('entering SubProc');
  19.             SignalWhen(99, False);
  20.             SignalUnless(98, True);
  21.             SignalWhen(1, True);
  22.         end;
  23.  
  24.         procedure Handler;
  25.             var
  26.                 sigRA: Ptr;
  27.         begin
  28.             sigRA := Ptr(IdentifySignaller);
  29.             writeln('entering Handler');
  30.             writeln('Catch ', catch);
  31.             writeln('Signaller RA ', sigRA);
  32.             SignalHandlerDone;
  33.             Exit(TestProc);
  34.         end;
  35.  
  36.     begin
  37.         writeln('entering TestProc');
  38.         catch := CatchSignal;
  39.         if catch <> 0 then
  40.             Handler;
  41.         writeln('catch established in TestProc');
  42.         SubProc;
  43.     end;
  44.  
  45.     procedure Caller1;
  46.         var
  47.             dummy: Integer;
  48.     begin
  49.         dummy := 1;
  50.         TestProc;
  51.     end;
  52.  
  53.     var
  54.         oldLevel: Integer;
  55.  
  56. begin { main }
  57.     ShowText;
  58.     InitSignals(sigFail);
  59.     mainCatch := CatchSignal;        {Without this - we never return from test Proc - Why?}
  60.     oldLevel := SignalDebugLevel(1); {Break into the low-level debugger only while in project}
  61.     Caller1;
  62.     writeln('returned to main');
  63. end.